using f64 = long double;
const f64 eps = 1e-12;
void solve()
{
  int n, k;
  cin >> n >> k;

  vi a(n);
  rep(i, 0, n - 1) {
    cin >> a[i];
  }

  auto f = [&](int p, f64 c) {
    f64 t = c * a[p];
    return t / (1 + t);
  };

  auto check = [&](f64 c) {
    f64 s = 0;
    rep(i, 0, n - 1) {
      s += f(i, c);
    }
    return s <= k;
  };

  f64 l = -1e15, r = 1e15;
  for (int i = 0; i <= 300; i++) {
    f64 m = (l + r) / 2;
    if (check(m)) {
      l = m;
    } else {
      r = m;
    }
  }

  cout << fixed << setprecision(12);
  rep(i, 0, n - 1) {
    cout << f(i, l) << '\n';
  }
}